package automat;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class TestBilletautomat {
	Billetautomat bill;
	
	@Before
	public void setUp() throws Exception {
		bill = new Billetautomat();
		
	}

	@Test
	public void testIndsætPenge() {
		bill.indsætPenge(10);
		assertEquals(10, bill.getBalance());
	}
	
	@Test
	public void testIndsætNegativtBeløb() {
		bill.indsætPenge(-10);
		assertEquals(0, bill.getBalance());
	}

	@Test
	public void testGetBalance() {
		bill.indsætPenge(10);
		assertEquals(10, bill.getBilletpris());
	}

	@Test
	public void testReturpenge() {
		bill.indsætPenge(10);
		assertEquals(10, bill.returpenge());
		
	}

	@Test
	public void testSetBilletpris() {
		bill.montørLogin("1234");
		bill.setBilletpris(20); 
		assertEquals(20, bill.getBilletpris());
	}
	
	@Test
	public void testSetNegativBilletpris() {
		bill.montørLogin("1234");
		bill.setBilletpris(-20);
		assertEquals(10, bill.getBilletpris());
	}
	@Test
	public void testGetTotal() {
		bill.montørLogin("1234");
		bill.setBilletpris(20);
		bill.indsætPenge(40);
		bill.udskrivBillet();
		bill.udskrivBillet();
		assertEquals(40, bill.getTotal());	
	}
	@Test
	public void testGetAntalBilletterSolgt() {
		bill.montørLogin("1234");
		bill.indsætPenge(20);
		bill.udskrivBillet();
		bill.udskrivBillet();
		assertEquals(2, bill.getAntalBilletterSolgt());
	}
	@Test
	public void testErMontør() {
		bill.montørLogin("1234");
		assertTrue(bill.erMontør());
	}
	@Test
	public void testNulstil() {
		bill.indsætPenge(20);
		bill.montørLogin("1234");
		bill.setBilletpris(20);
		bill.udskrivBillet();
		bill.nulstil();
		assertEquals(0, bill.getAntalBilletterSolgt());
	}
}
